﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Ubatic.Common.Dto;
using Ubatic.Contracts.Contracts;
using Ubatic.Contracts.Search;

namespace Ubatic.Contracts.Services
{
    public interface IAdminProyectoService
    {
        List<Proyecto> GetProyectos(ServiceOptions options, SearchProyecto searchParams);

        Proyecto GetProyecto(ServiceOptions options, int proyectId);

        ProyectoEquipo GetProyectoEquipo(ServiceOptions options, int proyectId);

        ProyectoMiembro GetMiembroEquipo(ServiceOptions options, int miembroId);

        ProyectoMiembro GetMiembroEquipoByEmail(ServiceOptions options, int proyectoId, string email);

        void EliminarProyecto(int proyectoId);

        void EliminarProyectoMiembro(int miembroId);

        Proyecto SaveProyectoDatosGenerales(Proyecto proyecto);

        ProyectoEquipo SaveProyectoEquipo(ProyectoEquipo proyecto);

        ProyectoMiembro SaveProyectoMiembroEquipo(ProyectoMiembro miembro);

        List<ProyectoMiembro> GetMiembrosEquipoDelProyecto(int proyectoId);
       
        List<MaestroBase> GetConvocatorias();   

        List<MaestroBase> GetLineasDeTrabajo();        

        List<MaestroBase> GetUnidadesAcademicas();

        List<MaestroBase> GetAreasDeConocimiento();

        List<MaestroBase> GetAsignaturas();

        List<MaestroBaseCargo> GetCargos();

        List<MaestroBaseCargo> GetCargoDedicaciones();

        List<MaestroBaseCargo> GetTipoDeCargo();

        List<MaestroBaseCargo> GetCargoCondicion();

        List<MaestroBase> GetExperienciaEnTIC();

        List<MaestroBase> GetRolEnProyecto();
    }
}
